// 导入模块
const http = require( 'http' );
const qs = require('querystring');

const requestListener = (req,resp) => { 
    console.log( req.method , req.url );

    // 取得 req 实例对应的原型对象( IncomingMessage.prototype )
    // console.log( req.__proto__ ); // 返回的是 Readable 的一个实例
    // console.log( req.__proto__.__proto__ ); // 返回的是 Stream 的一个实例

    let params ;

    if( req.method === 'GET' ){
        let query = req.url ;
        let first = query.indexOf( '?' );
        if( first != -1 ) {
            query = query.substring( first + 1 );
        }
        params = qs.unescape( query );
        console.log( params );
        params = qs.parse( params );
        console.log( params );
    }

    if( req.method === 'POST' ){ 
        req.on( 'data' , chunk => {
            params = chunk.toString();
            console.log( params );
            params = qs.parse( params );
            console.log( params );
        });
    }

    // 设置响应头( response header )
    resp.setHeader( 'content-type' , 'text/html;charset=UTF-8' );
    // 输出正文
    resp.write( '<h1>你好</h1>' );
    // 必须显式调用 end 函数让响应结束
    resp.end();
}

// 使用 http 模块的 createServer 函数来创建服务器
const server = http.createServer( requestListener );

server.listen( 8080 , ()=> {
    console.log( '正在监听...' );
} );